<?php
/**
 * 消息 管理
 *
 * @author    Alex Xun xunzhibin@expert.com
 * @version   1.0
 * @copyright (C) 2018 Jnexpert Ltd. All rights reserved
 * @file      template\controller\v1\Message.php
 */

namespace app\template\controller\v1;

use controller\BasicWechat;

/**
 * 消息 控制器类
 *
 * @author Alex Xun xunzhibin@jnexpert.com
 * @package controller
 */
class Message extends BasicWechat
{
    /**
     * 公众号 第三方库 初始化
     *
     * 根据具体所需服务，实例不同的接口类
     *
     * @author Alex Xun xunzhibin@jnexpert.com
     */
    protected function initVendor()
    {
        // 实例化 第三方库
        $this->wechat = new \WeChat\Template($this->config);
    }

    /**
     * 发送消息
     *
     * 通过openid，将消息发送到指定用户
     *
     * @author Alex Xun xunzhibin@jnexpert.com
     */
    public function send()
    {
        /**
         * $data = [
         *      // 必需
         *      'touser'      => '', // 接收者openid
         *      'template_id' => '', // 模版ID
         *      'data'        => [], // 模版数据
         *
         *      // 非必需
         *      'color'       => '', // 模版字体颜色
         *      'url'         => '', // 模版 跳转链接
         *      'miniprogram' => [ // 跳转 小程序
         *      'appid'    => '',// appid
         *      'pagepath' => '',// 页面路径
         * ]
         **/

        // 发送
        $result = $this->wechat->send($this->data);

        // 异常
        if(isset($result['errcode']) && $result['errcode'] !== 0) {
            return json([
                'status' => false,
                'errMsg' => $result['errmsg']
            ], 400);
        }

        // 成功
        return [
            'status' => true,
            'data'   => [
                'msgid' => $result['msgid']
            ]
        ];
    }
}
